/*
 * Entrada.h
 *
 *  Created on: 02/10/2012
 */

#ifndef ENTRADA_H_
#define ENTRADA_H_

#include <iostream>
#include <signal.h>
#include <stdlib.h>
#include "Seniales/SignalHandler.h"
#include "Pipes/Pipe.h"
#include "Estacionamiento.h"
#include "Constantes.h"
#include "Utils.h"
#include "Auto.h"

class Entrada : public EventHandler {

private:

	int numeroEntrada;
	bool entradaAbierta;
	Estacionamiento* estacionamiento;
	vector<Pipe>* pipesSalidas;
	vector<Semaforo>* semaforosSalidas;

	void esperarAuto();
	Auto generarAuto();

public:

	Entrada(Estacionamiento*, int, vector<Pipe>*, vector<Semaforo>*);
	virtual ~Entrada();
	int handleSignal(int);
	int recibirAutos();

};

#endif /* ENTRADA_H_ */
